Análise exploratória de dados do RottenTomatoes sobre o ator Jake Gyllenhaal. O código empregado na extração dos dados aqui analizados e a descrição de como o usar encontra-se no repositório origem deste relatório.
import_data("jake_gyllenhaal")
filmes <- read_imported_data()
filmes %>%
glimpse()
## Observations: 20
## Variables: 5
## $ avaliacao <int> 92, 68, 73, 52, 73, 59, 82, 85, 92, 49, 35, 64, 47,...
## $ filme <chr> "Stronger", "Life", "Nocturnal Animals", "Demolitio...
## $ papel <chr> "Jeff Bauman", "David Jordan", "Tony HastingsEdward...
## $ bilheteria <dbl> 4.2, 30.2, 10.7, 1.7, 46.6, 42.4, 61.0, 39.1, 54.7,...
## $ ano <int> 2017, 2017, 2016, 2016, 2015, 2015, 2013, 2012, 201...
p <- filmes %>%
ggplot(aes(x = ano,
y = bilheteria,
text = paste("Filme:",filme,
"\nBilheteria:",
bilheteria,"m",
"\nAno:",ano))) +
geom_point(size = 4, color = paleta[1]) +
labs(y = "Bilheteria", x = "Ano de lançamento")
ggplotly(p, tooltip = "text") %>%
layout(autosize = F)
Entre os filmes em que Jake atuou um foge aos outros em termos de faturamento, o filme “The Day After Tomorrow” lançado em 2004.
É possível perceber uma tendência de queda no faturamento dos filmes em que Jake atuou após 2013.
filmes %>%
ggplot(aes(x = bilheteria)) +
geom_histogram(aes(y=(..count..)/sum(..count..)),binwidth = 10, boundary = 0,
fill = "grey", color = "black") +
geom_rug(size = .5) +
scale_x_continuous(breaks=seq(0,200,20)) +
labs(y = "Frequência Relativa", x = "Bilheteria")
Vemos claramente a disparidade entre “The Day After Tomorrow” e os outros filmes.
Nenhum valor fora do domínio de valores esperado, e.g. valores negativos.
p <- filmes %>%
ggplot(aes(x = "",
y = bilheteria,
label = filme,
text = paste("Filme:",filme,
"\nBilheteria:",
bilheteria,"m"))) +
geom_jitter(width = .05, alpha = .3, size = 3) +
labs(x = "", y="Bilheteria")
ggplotly(p, tooltip="text") %>%
layout(autosize = F)
Separar os filmes entre os de bilheteria abaixo e acima de 50 milhões parece uma abordagem razoável.
“The Day After Tomorrow” aparenta formar um exército de um filme só. O que nos daria 3 grupos.
p <- filmes %>%
ggplot(aes(x = ano,
y = avaliacao,
text = paste("Filme:",filme,
"\nAvaliação:",
avaliacao,
"\nAno:",ano))) +
geom_point(size = 4, color = paleta[1]) +
scale_y_continuous(limits = c(0, 100)) +
labs(y = "Avaliação RT", x = "Ano de lançamento")
ggplotly(p, tooltip = "text") %>%
layout(autosize = F)
filmes %>%
ggplot(aes(x = avaliacao)) +
geom_histogram(aes(y=(..count..)/sum(..count..)),binwidth = 10, boundary = 0,
fill = paleta[3], color = "black") +
geom_rug(size = .5) +
scale_x_continuous(breaks=seq(0,100,10)) +
labs(y = "Frequência Relativa", x = "Avaliação RT")
É possível perceber uma quantidade considerável de filmes com notas acima de 80.
Nenhum valor fora do domínio de valores esperado, e.g. valores negativos.
p <- filmes %>%
ggplot(aes(x = "",
y = avaliacao,
text = paste(
"Filme:",filme,
"\nAvaliação:",avaliacao))) +
geom_jitter(width = .05, alpha = .3, size = 3) +
labs(x = "", y="Avaliação RT")
ggplotly(p, tooltip = "text") %>%
layout(autosize = F)
agrupamento_h = filmes %>%
mutate(nome = paste0(filme, " (bil=", bilheteria, ")")) %>%
as.data.frame() %>%
column_to_rownames("filme") %>%
select(bilheteria) %>%
dist(method = "euclidian") %>%
hclust(method = "centroid")
ggdendrogram(agrupamento_h, rotate = T, size = 2, theme_dendro = F) +
labs(y = "Dissimilaridade", x = "", title = "Dendrograma") +
geom_hline(aes(yintercept = c(20,30), color=c("4 grupos","3 grupos"))) +
scale_colour_manual(name="#Grupos",
values=c("#56B4E9", "#FF9999"))
atribuicoes = get_grupos(agrupamento_h, num_grupos = 1:6)
atribuicoes = atribuicoes %>%
left_join(filmes, by = c("label" = "filme"))
atribuicoes %>%
ggplot(aes(x = "Filmes", y = bilheteria, colour = grupo)) +
geom_jitter(width = .02, height = 0, size = 1.6, alpha = .6) +
facet_wrap(~ paste(k, " grupos")) +
scale_color_brewer(palette = "Dark2") +
labs(y = "Bilheteria (milhões)", x = "", title = "Agrupamento por Bilheteria")
k_escolhido = 4
m <- list(l = 220)
p <-atribuicoes %>%
filter(k == k_escolhido) %>%
ggplot(aes(x = reorder(label, bilheteria),
y = bilheteria,
colour = grupo,
text = paste(
"Filme:", reorder(label, bilheteria),
"\nAvaliação:", bilheteria,
"\nGrupo:", grupo))) +
geom_jitter(width = .02, height = 0, size = 3, alpha = .6) +
facet_wrap(~ paste(k, " grupos")) +
scale_color_brewer(palette = "Dark2") +
labs(x = "", y = "Avaliação RT") +
coord_flip()
ggplotly(p,tooltip = "text") %>%
layout(autosize = F, margin = m)
agrupamento_h = filmes %>%
mutate(nome = paste0(filme, " (av=", avaliacao, ")")) %>%
as.data.frame() %>%
column_to_rownames("filme") %>%
select(avaliacao) %>%
dist(method = "euclidian") %>%
hclust(method = "ward.D")
ggdendrogram(agrupamento_h, rotate = T, size = 2, theme_dendro = F) +
labs(y = "Dissimilaridade", x = "", title = "Dendrograma") +
geom_hline(aes(yintercept = 30),color="red")
atribuicoes = get_grupos(agrupamento_h, num_grupos = 1:6)
atribuicoes = atribuicoes %>%
left_join(filmes, by = c("label" = "filme"))
atribuicoes %>%
ggplot(aes(x = "Filmes", y = avaliacao, colour = grupo)) +
geom_jitter(width = .02, height = 0, size = 1.6, alpha = .6) +
facet_wrap(~ paste(k, " grupos")) +
scale_color_brewer(palette = "Dark2") +
labs(y = "Avaliação RT", x = "", title = "Agrupamento por Avaliação")
k_escolhido = 3
m <- list(l = 220)
p <-atribuicoes %>%
filter(k == k_escolhido) %>%
ggplot(aes(x = reorder(label, avaliacao),
y = avaliacao,
colour = grupo,
text = paste(
"Filme:", reorder(label, avaliacao),
"\nAvaliação:", avaliacao,
"\nGrupo:", grupo))) +
geom_jitter(width = .02, height = 0, size = 3, alpha = .6) +
facet_wrap(~ paste(k, " grupos")) +
scale_color_brewer(palette = "Dark2") +
labs(x = "", y = "Avaliação RT") +
coord_flip()
ggplotly(p,tooltip = "text") %>%
layout(autosize = F, margin = m)
agrupamento_h_2d = filmes %>%
mutate(bilheteria = log10(bilheteria)) %>%
mutate_at(vars("avaliacao", "bilheteria"), funs(scale)) %>%
column_to_rownames("filme") %>%
select("avaliacao", "bilheteria") %>%
dist(method = "euclidean") %>%
hclust(method = "ward.D")
ggdendrogram(agrupamento_h_2d, rotate = TRUE, theme_dendro = F) +
labs(y = "Dissimilaridade", x = "", title = "Dendrograma") +
geom_hline(aes(yintercept = 4),color="red")
filmes2 <- filmes %>%
mutate(bilheteria = log10(bilheteria))
plota_hclusts_2d(agrupamento_h_2d,
filmes2,
c("avaliacao", "bilheteria"),
linkage_method = "ward.D",
ks = 1:6,
palette = "Dark2") +
scale_y_log10() +
labs(y = "Bilheteria", x = "Avaliação", title = "Agrupamento com Duas Dimensões")
atribuicoes = get_grupos(agrupamento_h_2d, num_grupos = 1:6)
atribuicoes = atribuicoes %>%
filter(k == 4) %>%
mutate(filme = label) %>%
left_join(filmes, by = "filme")
p <- atribuicoes %>%
ggplot(aes(x = avaliacao,
y = bilheteria,
colour = grupo,
text = paste(
"Filme:", filme,
"\nBilheteria:", bilheteria,"m\n",
"Avaliação:", avaliacao))) +
geom_jitter(width = .02, height = 0, size = 3, alpha = .6) +
facet_wrap(~ paste(k, " grupos")) +
scale_color_brewer(palette = "Dark2") +
scale_y_log10() +
labs(y = "Bilheteria", x = "Avaliação RT")
ggplotly(p, tooltip = "text") %>%
layout(autosize = F)